module.exports = (sequelize, DataTypes) => {
    return sequelize.define(
        "publish_like",
        {
            like_id: {
                type: DataTypes.INTEGER,
                primaryKey: true,
                autoIncrement: true,
            },
            // 新增：关联发布表的ID
            publish_id: {
                type: DataTypes.INTEGER,
                allowNull: false,
                references: {
                    model: "publish", // 关联的表名（需与Publish模型的tableName一致）
                    key: "publish_id" // 关联发布表的主键
                }
            },
            // 新增：关联用户表的ID
            user_id: {
                type: DataTypes.INTEGER,
                allowNull: false,
                references: {
                    model: "user", // 关联的用户表名
                    key: "id" // 关联用户表的主键
                }
            },
            is_canceled: {
                type: DataTypes.BOOLEAN,
                allowNull: false,
                defaultValue: false // 默认未取消点赞
            },
        },
        {
            tableName: "publish_like",
            timestamps: true,
            indexes: [
                // 新增：联合唯一索引，防止重复点赞
                {
                    unique: true,
                    fields: ["publish_id", "user_id"]
                }
            ]
        }
    );
};